package com.raycloud.erp.omll.provider.constant;

import com.raycloud.erp.omll.provider.enums.StockStatusEnum;

/**
 * @author 枫伦
 * @DESCRIPTION erp系统的交易状态和退款状态
 * @create 2021/1/10 6:02 下午
 */
public interface ErpStatusConstant {
    /**
     * erp的交易状态
     */
    interface TbTradeStatus {
        /**
         * 待付款
         */
        String SYS_STATUS_WAIT_BUYER_PAY = "WAIT_BUYER_PAY";

        /**
         * 待审核
         */
        String SYS_STATUS_WAIT_AUDIT = "WAIT_AUDIT";

        /**
         * 等待财审
         */
        String SYS_STATUS_WAIT_FINANCE_AUDIT = "WAIT_FINANCE_AUDIT";

        /**
         * 等待人工审核，一般由系统的自动审核触发，如果订单在自动审核的过程中被拒绝了，那么状态将转变为人工审核
         */
        String SYS_STATUS_WAIT_MANUAL_AUDIT = "WAIT_MANUAL_AUDIT";

        /**
         * 审核完成
         */
        String SYS_STATUS_FINISHED_AUDIT = "FINISHED_AUDIT";

        /**
         * 待打印快递单，这个状态和FINISHED_AUDIT一样，这个状态在视图上进行转变
         */
        String SYS_STATUS_WAIT_EXPRESS_PRINT = "WAIT_EXPRESS_PRINT";

        /**
         * 待打印发货单，这个状态和FINISHED_AUDIT一样，这个状态在视图上进行转变
         */
        String SYS_STATUS_WAIT_DELIVERY_PRINT = "WAIT_DELIVERY_PRINT";

        /**
         * 待打包，这个状态和FINISHED_AUDIT一样，这个状态在视图上进行转变
         */
        String SYS_STATUS_WAIT_PACKAGE = "WAIT_PACKAGE";

        /**
         * 待称重，这个状态和FINISHED_AUDIT一样，这个状态在视图上进行转变
         */
        String SYS_STATUS_WAIT_WEIGHT = "WAIT_WEIGHT";

        /**
         * 待发货，这个状态和FINISHED_AUDIT一样，这个状态在视图上进行转变
         */
        String SYS_STATUS_WAIT_SEND_GOODS = "WAIT_SEND_GOODS";

        /**
         * 待供销商发货，这个状态和FINISHED_AUDIT一样，这个状态在视图上进行转变
         */
        String SYS_STATUS_WAIT_DEST_SEND_GOODS = "WAIT_DEST_SEND_GOODS";

        /**
         * 卖家已发货
         */
        String SYS_STATUS_SELLER_SEND_GOODS = "SELLER_SEND_GOODS";

        /**
         * 交易完成
         */
        String SYS_STATUS_FINISHED = "FINISHED";

        /**
         * 交易关闭
         */
        String SYS_STATUS_CLOSED = "CLOSED";

        /**
         * 交易作废
         */
        String SYS_STATUS_CANCEL = "CANCEL";


    }

    /**
     * erp的退款状态
     */
    interface RefundStatus {
        String REFUND_WAIT_SELLER_AGREE = "WAIT_SELLER_AGREE";//待卖家同意退款

        String REFUND_WAIT_BUYER_RETURN_GOODS = "WAIT_BUYER_RETURN_GOODS";//待买家退货

        String REFUND_WAIT_SELLER_CONFIRM_GOODS = "WAIT_SELLER_CONFIRM_GOODS";//待卖家确认收货

        String REFUND_SELLER_REFUSE_BUYER = "SELLER_REFUSE_BUYER";//卖家同意退款

        String REFUND_CLOSED = "CLOSED";//退款关闭

        String REFUND_SUCCESS = "SUCCESS";//退款成功

        String NO_REFUND = "NO_REFUND";//未退款

        /**
         * 这个是系统的一个退款状态，当平台订单的状态为待发货时，买家申请了退款，卖家是不能直接拒绝退款，只能强制发货，所以这个时候需要把退款状态设置为这个状态
         */
        String REFUND_SELLER_CONTINUE_CONSIGN = "SELLER_CONTINUE_CONSIGN";
    }

    interface StockStatus {
        //========================= 库存状态枚举 =======================//
        /**
         * 库存空值，未进行过匹配操作
         */
        String STOCK_STATUS_EMPTY = StockStatusEnum.STOCK_STATUS_EMPTY.stockStatus;

        /**
         * 库存正常
         */
        String STOCK_STATUS_NORMAL = StockStatusEnum.STOCK_STATUS_NORMAL.stockStatus;

        /**
         * 商品未分配
         */
        String STOCK_STATUS_UNALLOCATED = StockStatusEnum.STOCK_STATUS_UNALLOCATED.stockStatus;

        /**
         * 库存不足
         */
        String STOCK_STATUS_INSUFFICIENT = StockStatusEnum.STOCK_STATUS_INSUFFICIENT.stockStatus;

        /**
         * 商品对应关系修改
         */
        String STOCK_STATUS_RELATION_MODIFIED = StockStatusEnum.STOCK_STATUS_RELATION_MODIFIED.stockStatus;

        /**
         * 库存不足
         */
        String STOCK_STATUS_EXCEP = StockStatusEnum.STOCK_STATUS_EXCEP.stockStatus;
    }
}
